//1.创建Node节点类Node
export class Node<T> {
    value: T
    next: Node<T> | null = null 
    constructor(value: T) {
        this.value = value
    }
}

export class DoublyNode<T> extends Node<T> {
    prev : DoublyNode<T> | null = null;
    // 这里重写了 next使其类型为DoublyNode<T> 类型而不是Node<T>
    next: DoublyNode<T> | null = null 
}

const dNode = new DoublyNode<string>('aaa');

dNode.prev?.prev

 // 如果不重写的话就需要用ts as 让其实现比现有类型更具体的一个类型（这样写的话代码会比较繁琐）
// dNode.prev?.prev;

// (dNode.next as DoublyNode<string>).prev